Electronic devices, for example, personal computers (PC's), laptop computers, MP3 Players, tablet computers and other suitable devices and combinations thereof utilize Basic Input Output System (BIOS) software to perform a boot operation. The BIOS software is typically maintained on a read-only memory (ROM) chip of the electronic device (often referred to as ROM BIOS). Because random-access memory (RAM) is faster than ROM, many electronic devices employ a technique known as ‘shadowing,’ in which the BIOS is copied from ROM to RAM each time the device is booted.
An industry standard was created so that electronic devices that include processors would typically look in the same place in memory to find the start of the BIOS software. In particular, the BIOS software is typically located in a special reserved memory area near the end of system memory (e.g., beginning at address FFFF0h). Since there are only 16 bytes left from there to the end of conventional memory, this address will typically contain a “jump” instruction which indicates to the processor where the actual BIOS code is located. From this location, processors get their first instructions and begin to execute the BIOS code. The BIOS code typically begins the system boot sequence by performing a power-on self test (POST) and initializing and configuring the device hardware.
After performing the POST operation and initializing certain hardware, the BIOS begins searching for media to boot from. Most modern BIOS software contains a setting that controls if the device should first try to boot from the floppy disk or first try the hard disk. Having identified the target boot drive, the BIOS looks for boot information to start the operating system boot process. If it is searching a partitioned media (e.g., hard disk), the BIOS will look for a master boot record (MBR) at cylinder 0, head 0, sector 1 (the first sector on the disk). The MBR typically contains a partition table and generally also has a partition table search program. This MBR code, also known as a boot loader, locates the selected boot partition and begins to load and execute code from the boot sector of the selected boot partition. If, on the other hand, the located bootable media is non-partitioned (e.g., a floppy disk), the BIOS looks at the same address for the non-partitioned media (e.g., the first block of data) and loads that partition's boot sector into memory. In either case, once the BIOS has found a bootable media, execution control is based on the code located in the boot sector of the bootable media.
Thus, typical electronic devices require that the boot media to be specially formatted (e.g., corrected partitioned with MBR or boot sector) in order to be recognized by the BIOS as bootable media. If the BIOS does not detect any media (e.g., hard drive, floppy disk, CD-ROM, etc.) that is correctly formatted for booting, the device will not boot. It should also be noted that the formatting required to render non-partitioned media bootable will prevent that media from being used for standard data storage.